Methods and Systems of Automated Client-Server Data Validation

ABSTRACT

Methods and systems of automated data validation by client computer and by server computer based upon a form containing at least one form entry with at least one associated validation rule are presented.

CROSS REFERENCE TO RELATED APPLICATION

The present application is a continuation of U.S. application Ser. No.12/110,192 filed on Apr. 25, 2008, which is a continuation of U.S.application Ser. No. 10/203,016 filed on Aug. 2, 2002 which is nowissued as U.S. Pat. No. 7,366,977. Each of the aforementioned patent(s)and application(s) are hereby incorporated by reference in theirentirety.

TECHNICAL FIELD

This invention relates to checking the validity of data entry inweb-based systems.

BACKGROUND ART

In web-based systems involving data entry, there is a problem inchecking the validity of the data. The prior art provides three choices,each having disadvantageous consequences:

-   -   1. Check the data only at the client. This lets you be        responsive to the user (you can display helpful messages in a        timely way), but leaves your system open to bad data from        entities that bypass your client and speak directly to your        server.    -   2. Check the data only at the server. This ensures that the        server does not accept bad data, no matter what client is used        to send it, but is harder to use because it may take a while to        display messages to the user when data is incorrectly entered.    -   3. Check the data at the client and at the server. This is        responsive to the user and is safe from bad data, but requires a        lot of engineering work because the data validation code has to        be maintained on two platforms.

SUMMARY OF THE INVENTION

The present invention provides a way to validate data entry at both theclient and the server with minimal engineering effort.

The system allows engineers to specify data validation rules for a formon a server. The system provides a version of the rules with the form tothe client computer. The system also executes the rules on the serverfor further validation. The system may translate the rules intoJavaScript data structures, passed as the version to the client forclient-side validation. Because engineers only specify the rules for theform once, there is no possibility of the rules becoming out of syncbetween the form on the client and on the server.

A set of validation rules can be specified for each form (web page wheredata entry is allowed). Each rule is associated with a form element(e.g. the users email address or a phone number) and defines what isallowed and what is required for that form element.

Each rule can be created from a set of reusable, configurableconstraints.

There is a set of pre-written constraints. New constraints can be added.Currently there are number constraints and string constraints.

Number constraints produce rules that force a field to be numeric andmay also specify minimum and/or maximum values that the user must meet.String constraints produce rules that may have minimum or maximumlengths, may allow only certain characters, may require certaincharacters and may or may not allow white space (e.g. spaces, tabs).

Each supported constraint consists of server-side Java code andclient-side JavaScript code.

When the server sends the form down to the browser it includes someJavaScript data structures, which are automatically generated from theset of rules that were defined for the form. When the user attempts tosubmit the form, some JavaScript code first iterates through each rulethat was included in the automatically generated data structures. Eachrule is checked against the appropriate entry field. If there is aviolation of the rule, the JavaScript code immediately displays amessage without involving the server. The generated data structureincludes message text for each rule that can be displayed if the userviolates a rule.

When the server receives a posted form, it iterates through each of therules defined for that set. If there is a violation of the rule, theserver responds to the client with an error message.

These and other advantages of the present invention will become apparentupon reading the following detailed descriptions and studying thevarious figures of the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts a system supporting server computer 4 communicativelycoupled 40-42 to client computer 50 operated 52 by client 54, inaccordance with certain embodiments of the invention;

FIG. 2A depicts a detail flowchart of operation 100 of FIG. 1 furtherperforming validating client 54 data entry 52 by a client computer 50and by a server computer 40 based upon a form 10 containing at least oneform entry 12 with at least one associated validation rule 14;

FIG. 2B depicts a detail flowchart of operation 132 of FIG. 2A furtherperforming the server computer validating the client form data entryreceived from the client computer;

FIG. 3A depicts a detail flowchart of operation 122 of FIG. 2A furtherperforming the client computer processing the client form entry;

FIG. 3B depicts a detail flowchart of operation 182 of FIG. 3A furtherperforming the client computer sending the initial client form dataentry to the server computer;

FIG. 4A depicts a detail flowchart of operation 216 of FIG. 2B furtherperforming the client computer sending the initial client form dataentry to the server computer;

FIG. 4B depicts a detail flowchart of operation 152 of FIG. 2B furtherperforming the server computer receiving the client form data entry fromthe client computer;

FIG. 5 depicts a server system 2 including server computer 4 of FIG. 1communicating 40-42 with client computer 50 of FIG. 1;

FIG. 6 depicts server system 2 of FIG. 5 further including servercomputer 74 communicating 44-42 with client computer 50 of FIG. 1 andincluding server computer 84 with accessibly coupled 86 memory 88containing form 10;

FIG. 7A depicts a detail flowchart of operation 100 of FIG. 2A furtherperforming validating client data entry by the client computer and bythe server computer;

FIG. 7B depicts a detail flowchart of operation 112 of FIG. 2A furtherperforming the client computer receiving the one form entry and at leastone associated validation rule;

FIG. 8A depicts a detail flowchart of operation 272 of FIG. 7A furtherperforming the second server computer providing the client computer theversion of all the associated validation rules of the form entry;

FIG. 8B depicts a detail flowchart of operation 112 of FIG. 2A furtherperforming the client computer creating the client form entry with atleast one associated local client rule;

FIG. 9A depicts a detail flowchart of operation 272 of FIG. 7A furtherperforming the second server computer providing the client computer theclient form entry;

FIG. 9B depicts a detail flowchart of operation 122 of FIG. 2A furtherperforming the client computer processing the client form entry;

FIG. 10A depicts a detail flowchart of operation 100 of FIG. 2A furtherperforming the method validating client data entry at both the clientcomputer and the server computer;

FIG. 10B depicts a detail flowchart of operation 412 of FIG. 10A furtherperforming maintaining the form collection;

FIG. 11A depicts a flowchart of preparing and sending a first formcontaining at least one form entry with at least one associatedvalidation rule for use in the methods using forms with both clientvalidation and server validation of form entries with validation rules;

FIG. 11B depicts a detail flowchart of operation 452 of FIG. 11A furtherperforming developing the first form and specifying the associatedvalidation rule set for the first form;

FIG. 12A depicts a detail flowchart of operation 112 of FIG. 2A furtherperforming the client computer receiving the client form entry;

FIG. 12B depicts a detail flowchart of operation 132 of FIG. 2A furtherperforming the server computer validating the client form data entry;

FIG. 13 depicts a detail flowchart of operation 100 of FIG. 1 furtherperforming the method of using the form and validating form entries byboth server computer 4 and client computer 50;

FIG. 14A depicts a detail flowchart of operation 602 of FIG. 13 furtherperforming client computer operations supporting the method of using theform by both server computer 4 and client computer 50;

FIG. 14B depicts a detail flowchart of operation 612 of FIG. 13 furtherperforming server computer operations supporting the method of using theform by both server computer 4 and client computer 50;

FIG. 15A depicts a detail flowchart of operation 632 of FIG. 14 furtherperforming the client computer receiving the client form; and

FIG. 15B depicts a detail flowchart of operation 632 of FIG. 14 furtherperforming the client computer receiving the client form.

DETAILED DESCRIPTION OF THE INVENTION

The present invention provides a way to validate data entry at both theclient and the server with minimal engineering effort. The system allowsengineers to specify data validation rules for each form or web pagewhere data entry is allowed.

FIG. 1 depicts a system supporting server computer 4 communicativelycoupled 40-42 to client computer 50 operated 52 by client 54, inaccordance with certain embodiments of the invention.

Server computer 4 is accessibly coupled 6 to memory 8 containing oneform entry 12 associated with at least server rule 14 and at least oneclient rule 16 based upon form 10.

Form 10 may further comprise a second form entry 22 associated with atleast one server rule 24 and at least one client rule 26.

There may be a second form 30 comprising at least one form entry 32associated with at least server rule 34 and at least one client rule 36.

Memory 8 may further include program system 100 operating servercomputer 4 communicating 40-42 with client computer 50 to embodyvalidation of data entry 52 by client 54 both by the client computer 50using local client rules 66 and server computer 4 using server rules 44.

Memory 8 may include, but is not limited to, volatile memory andnon-volatile memory. Memory 8 may include, but is not limited to, atleast two memory components. The memory components may include volatilememory components and non-volatile memory components. At least onememory component may be organized as a file management system. The filemanagement system, memory component may include, but is not limited to,at least one of the following: a semiconductor memory device, a diskdrive and a disk array.

Server computer 4 communicatively couples 40-42 to client computer 50.Where arrows 40 and 42 meet may include, but is not limited to, agateway, which may or may not possess redundant portals. Where arrows 40and 42 meet may include, but is not limited to, a firewall. Where arrows40 and 42 meet may include, but is not limited to, a web site.

As used herein, a computer will include, but is not limited to,instruction processors operating on one or more data streamsconcurrently and may execute one or more concurrent instruction streams.A computer will include, but is not limited to, inferential enginescontrolled by an inferential state. The inferential state may be changedby alterations in the active inferential rules, facts contained in afact database and facts derived from interactions such as client dataentry.

As used herein, the operational steps of the methods of this inventionmay be performed in finite state machines. The operational steps of themethods of this invention may be performed as program steps residing inmemory accessibly coupled to a collection of one or more computers.Program steps may be interpreted or natively executed by the computers.Program steps may represent instructions in machine portable interpretedlanguages including, but not limited to various forms of one or more ofthe following: HTTP, XML, JAVA, Prolog, LISP, Scheme, C, C++, Smalltalk,FORTRAN and COBOL.

The program steps may implement machine language operations of acomputer, interpreted instructions or inferential rules or facts carriedout by at least one computer in the systems described herein.

FIG. 2A depicts a detail flowchart of operation 100 of FIG. 1 furtherperforming validating client 54 data entry 52 by a client computer 50and by a server computer 40 based upon a form 10 containing at least oneform entry 12 with at least one associated validation rule 14.

Arrow 110 directs the flow of execution from starting operation 100 tooperation 112. Operation 112 performs the client computer receiving theform entry and at least one associated validation rule contained in theform to create the client form entry with at least one associated localclient rule. Arrow 114 directs execution from operation 112 to operation116. Operation 116 terminates the operations of this flowchart.

Arrow 120 directs the flow of execution from starting operation 100 tooperation 122. Operation 122 performs the client computer processing theclient form entry using the client data entry and satisfying all of theassociated local client rules to create a client form data entryreceived by the server computer. Arrow 124 directs execution fromoperation 122 to operation 116. Operation 116 terminates the operationsof this flowchart.

Arrow 130 directs the flow of execution from starting operation 100 tooperation 132. Operation 132 performs the server computer validating theclient form data entry received from the client computer based upon allof the associated validation rules of the form entry contained in theform. Arrow 134 directs execution from operation 132 to operation 116.Operation 116 terminates the operations of this flowchart.

FIG. 2B depicts a detail flowchart of operation 132 of FIG. 2A furtherperforming the server computer validating the client form data entryreceived from the client computer.

Arrow 150 directs the flow of execution from starting operation 132 tooperation 152. Operation 152 performs the server computer receiving theclient form data entry from the client computer. Arrow 154 directsexecution from operation 152 to operation 156. Operation 156 performsthe server computer validating the client form data entry based upon allof the associated validation rules of the form entry contained in theform. Arrow 158 directs execution from operation 156 to operation 160.Operation 160 terminates the operations of this flowchart.

Note that as used herein, the flowcharts of this document depict anillustrative manner by which to understand the operations of the variousmethods of certain embodiments of the invention.

In certain embodiments of the invention, concurrent object paradigms,often supporting real-time event-driven operating system may besupported. Such embodiments may further support message passing as a wayto trigger events. As such, an arrow and the flow of executionrepresented by that arrow may serve to depict disparate actions in avariety of distinct objects, which taken in their entirety form anembodiment of the invention.

Note that operation 152 may be performed a different number of timesthan operation 156, in such embodiments of the invention utilizingreal-time event-driven operating environments for concurrent objectssupporting messaging, such as JAVA and C++.

In certain embodiments of the invention supporting inferential engines,these flowcharts portray the inferential action of the components of theinference system embodied.

FIG. 3A depicts a detail flowchart of operation 122 of FIG. 2A furtherperforming the client computer processing the client form entry.

Arrow 170 directs the flow of execution from starting operation 122 tooperation 172. Operation 172 performs the client computer processing theclient form entry based upon input from the client to create an initialclient form data entry. Arrow 174 directs execution from operation 172to operation 176. Operation 176 terminates the operations of thisflowchart.

Arrow 180 directs the flow of execution from starting operation 122 tooperation 182. Operation 182 performs the client computer sending theinitial client form data entry to the server computer to create theclient form data entry whenever the initial client form data entrysatisfies all of the associated local client rules. Arrow 184 directsexecution from operation 182 to operation 176. Operation 176 terminatesthe operations of this flowchart.

FIG. 3B depicts a detail flowchart of operation 182 of FIG. 3A furtherperforming the client computer sending the initial client form dataentry to the server computer.

Arrow 210 directs the flow of execution from starting operation 182 tooperation 212. Operation 212 determines when the initial client formdata entry satisfies all of the associated local client rules. Arrow 214directs execution from operation 212 to operation 216 when thedetermination is ‘Yes’. Arrow 228 directs execution to 220 when thedetermination is ‘No’.

Operation 216 performs the client computer sending the initial clientform data entry to the server computer to create the client form dataentry. Arrow 218 directs execution from operation 216 to operation 220.Operation 220 terminates the operations of this flowchart.

FIG. 4A depicts a detail flowchart of operation 216 of FIG. 2B furtherperforming the client computer sending the initial client form dataentry to the server computer.

Arrow 230 directs the flow of execution from starting operation 216 tooperation 232. Operation 232 performs the client encrypting the initialclient form data entry to create an encrypted data entry. Arrow 234directs execution from operation 232 to operation 236. Operation 236performs the client sending the encrypted data entry to the servercomputer. Arrow 238 directs execution from operation 236 to operation240. Operation 240 terminates the operations of this flowchart.

FIG. 4B depicts a detail flowchart of operation 152 of FIG. 2B furtherperforming the server computer receiving the client form data entry fromthe client computer.

Arrow 250 directs the flow of execution from starting operation 152 tooperation 252. Operation 252 performs the server receiving the encrypteddata entry. Arrow 254 directs execution from operation 252 to operation256. Operation 256 performs the server computer decrypting the encrypteddata entry to create the client form data entry. Arrow 258 directsexecution from operation 256 to operation 260. Operation 260 terminatesthe operations of this flowchart.

FIG. 5 depicts a server system 2 including server computer 4 of FIG. 1communicating 40-42 with client computer 50 of FIG. 1.

Memory 8 may contain form 10.

Memory 58 may include a web browser 60. Web browser 60 may furtherperform client operations supporting the program system 100. Note thatin certain embodiments of the invention, the browser 60 may download aversion of those client operations and form as a web page.

Memory 58 may include client form 10.

Note that rule 16 is associated with form entry 12 and form entry 22. Anexample of a rule which is associated with more than one form entrywould be a rule which validates that birth date and age must be close toeach other. A birth date entry indicating an age of 16 and an age entryof 21 should fail such a validation rule.

FIG. 6 depicts server system 2 of FIG. 5 further including servercomputer 74 communicating 44-42 with client computer 50 of FIG. 1 andincluding server computer 84 with accessibly coupled 86 memory 88containing form 10.

Server computer 74 may provide client computer 50 with client form entry62 and associated local client rules 66.

Server computer 84 may provide server rules 14 to server computer 4.Server computer 84 may further provide form 10 to server computer 74.Server computer 84 may provide a version of form 10 to server computer74. Server computer 84 may generate a version of form 10.

Server computer 74 may generate a version of form 10 to send to clientcomputer 50.

Note that in certain embodiments, form 10 may include form entries 12with pre-computed versions of the server rules 14 and client rules 16.

FIG. 7A depicts a detail flowchart of operation 100 of FIG. 2A furtherperforming validating client data entry by the client computer and bythe server computer.

Arrow 270 directs the flow of execution from starting operation 100 tooperation 272. Operation 272 performs a second server computer providingthe client computer a version of the form entry and at least oneassociated validation rule. Arrow 274 directs execution from operation272 to operation 276. Operation 276 terminates the operations of thisflowchart.

FIG. 7B depicts a detail flowchart of operation 112 of FIG. 2A furtherperforming the client computer receiving the one form entry and at leastone associated validation rule.

Arrow 290 directs the flow of execution from starting operation 112 tooperation 292. Operation 292 performs the client computer receiving theone form entry and all of the associated validation rules from thesecond server computer to create the client form entry with at least oneassociated local client rule. Arrow 294 directs execution from operation292 to operation 296. Operation 296 terminates the operations of thisflowchart.

FIG. 8A depicts a detail flowchart of operation 272 of FIG. 7A furtherperforming the second server computer providing the client computer theversion of all the associated validation rules of the form entry.

Arrow 310 directs the flow of execution from starting operation 272 tooperation 312. Operation 312 performs the second server computergenerating a version of all the associated validation rules based uponthe one form entry and all of the associated validation rules. Arrow 314directs execution from operation 312 to operation 316. Operation 316performs the second server computer sending the version to the clientcomputer to create all the associated local client rules. Arrow 318directs execution from operation 316 to operation 320. Operation 320terminates the operations of this flowchart.

FIG. 8B depicts a detail flowchart of operation 112 of FIG. 2A furtherperforming the client computer creating the client form entry with atleast one associated local client rule.

Arrow 330 directs the flow of execution from starting operation 112 tooperation 332. Operation 332 performs the client computer receiving theone form entry to create the client form entry. Arrow 334 directsexecution from operation 332 to operation 336. Operation 336 performsthe client computer receiving the version of all the associatedvalidation rules to create all the local client rules associated withthe client form entry. Arrow 338 directs execution from operation 336 tooperation 340. Operation 340 terminates the operations of thisflowchart.

Note that in certain embodiments of the invention, a version of the formentry may be received as well.

FIG. 9A depicts a detail flowchart of operation 272 of FIG. 7A furtherperforming the second server computer providing the client computer theclient form entry.

Arrow 350 directs the flow of execution from starting operation 272 tooperation 352. Operation 352 performs the second server computerproviding the client computer the form entry and all the associatedvalidation rules to create the client form entry with all the associatedlocal client rules, for each of the form entries with the associatedvalidation rules contained in the form. Arrow 354 directs execution fromoperation 352 to operation 356. Operation 356 terminates the operationsof this flowchart.

FIG. 9B depicts a detail flowchart of operation 122 of FIG. 2A furtherperforming the client computer processing the client form entry.

Arrow 370 directs the flow of execution from starting operation 122 tooperation 372. Operation 372 performs the client computer receiving asubmission request from the client to create a form submission request.Arrow 374 directs execution from operation 372 to operation 376.Operation 376 terminates the operations of this flowchart.

Arrow 380 directs the flow of execution from starting operation 122 tooperation 382. Operation 382 performs the client computer validating theclient form entry based upon all of the associated local client rules tocreate a validated client form data entry, whenever the client computerreceives the form submission request, for each form entry with at leastone associated validation rule contained in the form. Arrow 384 directsexecution from operation 382 to operation 376. Operation 376 terminatesthe operations of this flowchart.

Arrow 390 directs the flow of execution from starting operation 122 tooperation 392. Operation 392 performs the client computer sending all ofthe validated client form data entries to the server computer to createall of the client form data entries for the form whenever the initialclient form data entries satisfy all of the associated local clientrules, for all of the at least one form entry with at least oneassociated validation rule contained in the form. Arrow 394 directsexecution from operation 392 to operation 376. Operation 376 terminatesthe operations of this flowchart.

FIG. 10A depicts a detail flowchart of operation 100 of FIG. 2A furtherperforming the method validating client data entry at both the clientcomputer and the server computer.

Arrow 410 directs the flow of execution from starting operation 100 tooperation 412. Operation 412 performs maintaining a form collectionincluding at least one form comprised of at least one form entry with atleast one associated validation rule. Arrow 414 directs execution fromoperation 412 to operation 416. Operation 416 terminates the operationsof this flowchart.

FIG. 10B depicts a detail flowchart of operation 412 of FIG. 10A furtherperforming maintaining the form collection.

Arrow 430 directs the flow of execution from starting operation 412 tooperation 432. Operation 432 performs receiving a first form andspecifying an associated validation rule set for the first form from adevelopment computer. Arrow 434 directs execution from operation 432 tooperation 436. Operation 436 performs adding the first form and theassociated validation rule set into the form collection. Arrow 438directs execution from operation 436 to operation 440. Operation 440terminates the operations of this flowchart.

Certain embodiments of the invention may include preparing a formcontaining at least one form entry with at least one associatedvalidation, and sending that form to be added to a form collection.

Such operations may be performed as program steps residing in memoryaccessibly coupled to a development computer. The development computermay further be a server development computer or a client developmentcomputer. The server development computer may further belong to theserver system containing the server computer. The server developmentcomputer may further be any of the following: the server computer 4 thesecond server computer 74 or the third server computer 84.

Sending the form to be added to the maintained form collection mayfurther include sending the form as a message to a method of an objectof a class maintaining a form collection available to server computer 4.The form collection may further be available to second server computer74.

FIG. 11A depicts a flowchart of preparing and sending a first formcontaining at least one form entry with at least one associatedvalidation rule for use in the methods using forms with both clientvalidation and server validation of form entries with validation rules.

Arrow 450 directs the flow of execution from starting operation 100 tooperation 452. Operation 452 performs developing the first form andspecifying an associated validation rule set for the first form. Arrow454 directs execution from operation 452 to operation 456. Operation 456terminates the operations of this flowchart.

Arrow 460 directs the flow of execution from starting operation 100 tooperation 462. Operation 462 performs sending the first form and theassociated validation rule set for addition into the form collection.Arrow 464 directs execution from operation 462 to operation 456.Operation 456 terminates the operations of this flowchart.

Note that the associated validation rule set may be comprised of atleast one associated validation rule.

Each of the associated validation rules may be associated with at leastone form entry of the form collection.

Each rule may be created from a set of reusable, configurableconstraints.

There may be a set of pre-written constraints. Currently there arenumber constraints and string constraints.

New constraints may be added.

Number constraints produce rules that force a field to be numeric andmay also specify minimum and/or maximum values that the user must meet.String constraints produce rules that may have minimum or maximumlengths, may allow only certain characters, may require certaincharacters and may or may not allow white space (e.g. spaces, tabs).

Each supported constraint consists of server-side Java code andclient-side JavaScript code.

The system may translate the rules of the form into JavaScript datastructures, which are passed to the client for client-side validation ofthe form entries and the system also executes the rules on the serverfor further validation of the form entries. Because engineers onlyspecify the rules once for the form, there is no possibility of therules becoming out of sync between the form on the client and on theserver.

FIG. 11B depicts a detail flowchart of operation 452 of FIG. 11A furtherperforming developing the first form and specifying the associatedvalidation rule set for the first form.

Arrow 470 directs the flow of execution from starting operation 452 tooperation 472. Operation 472 performs maintaining a form entrycollection containing at least one form entry. Arrow 474 directsexecution from operation 472 to operation 476. Operation 476 terminatesthe operations of this flowchart.

Arrow 480 directs the flow of execution from starting operation 452 tooperation 482. Operation 482 performs specifying the associatedvalidation rule set based upon the form entry collection. Arrow 484directs execution from operation 482 to operation 476. Operation 476terminates the operations of this flowchart.

FIG. 12A depicts a detail flowchart of operation 112 of FIG. 2A furtherperforming the client computer receiving the client form entry.

Arrow 490 directs the flow of execution from starting operation 112 tooperation 492. Operation 492 performs the client computer receiving thestep 122 of the client computer processing the client form entry. Arrow494 directs execution from operation 492 to operation 496. Operation 496terminates the operations of this flowchart.

The server may send the form to the client computer. The client computermay be operating a browser receiving the sent form as shown in FIG. 5.The form may include some JavaScript data structures. The JavaScriptstructures may be automatically generated from the set of rules definedfor the form.

When the user attempts to submit the form, some JavaScript code mayfirst iterate through each rule that was included in the automaticallygenerated data structures.

Each rule is checked against the appropriate entry field. If there is aviolation of the rule, the JavaScript code immediately displays amessage without involving the server. The generated data structureincludes message text for each rule that can be displayed if the userviolates a rule.

FIG. 12B depicts a detail flowchart of operation 132 of FIG. 2A furtherperforming the server computer validating the client form data entry.

Arrow 510 directs the flow of execution from starting operation 132 tooperation 512. Operation 512 performs the server computer receiving allthe associated server validation rules based upon the form entry with atleast one associated validation rule. Arrow 514 directs execution fromoperation 512 to operation 516. Operation 516 terminates the operationsof this flowchart.

Arrow 520 directs the flow of execution from starting operation 132 tooperation 522. Operation 522 performs the server computer validating theclient form data entry based upon all the associated server validationrules. Arrow 524 directs execution from operation 522 to operation 516.Operation 516 terminates the operations of this flowchart.

When the server receives a posted form, it iterates through each of therules defined for that set. If there is a violation of the rule, theserver responds to the client with an error message.

Certain embodiments of the invention include a method of using a formcontaining at least one form entry with at least one associatedvalidation rule performing data validation by both a server computer anda client computer.

FIG. 13 depicts a detail flowchart of operation 100 of FIG. 1 furtherperforming the method of using the form and validating form entries byboth server computer 4 and client computer 50.

Arrow 600 directs the flow of execution from starting operation 100 tooperation 602. Operation 602 performs client computer operationssupporting the method using the form and validating the form entrieswith at least one validation rule. Arrow 604 directs execution fromoperation 602 to operation 606. Operation 606 terminates the operationsof this flowchart.

Arrow 610 directs the flow of execution from starting operation 100 tooperation 612. Operation 612 performs server computer operationssupporting the method using the form and validating the form entrieswith at least one validation rule. Arrow 614 directs execution fromoperation 612 to operation 606. Operation 606 terminates the operationsof this flowchart.

FIG. 14A depicts a detail flowchart of operation 602 of FIG. 13 furtherperforming client computer operations supporting the method using theform and validating the form entries with at least one validation rule.

Arrow 630 directs the flow of execution from starting operation 602 tooperation 632. Operation 632 performs receiving a client form containingat least one client form entry with at least one associated local clientrule based upon the form containing the at least one form entry with atleast one associated validation rule. Arrow 634 directs execution fromoperation 632 to operation 636. Operation 636 terminates the operationsof this flowchart.

Arrow 640 directs the flow of execution from starting operation 602 tooperation 642. Operation 642 performs processing client data entry basedupon the client form to create a client form data entry for the at leastone client form entry. Arrow 644 directs execution from operation 642 tooperation 636. Operation 636 terminates the operations of thisflowchart.

Arrow 650 directs the flow of execution from starting operation 602 tooperation 652. Operation 652 performs receiving a submission requestfrom the client to create a form submission request. Arrow 654 directsexecution from operation 652 to operation 636. Operation 636 terminatesthe operations of this flowchart.

Arrow 660 directs the flow of execution from starting operation 602 tooperation 662. Operation 662 performs validating the client form entrybased upon all the associated local client rules to create a validatedclient form data entry whenever the client computer receives the formsubmission request, for each form entry with at least one associatedvalidation rule contained in the form. Arrow 664 directs execution fromoperation 662 to operation 636. Operation 636 terminates the operationsof this flowchart.

Arrow 670 directs the flow of execution from starting operation 602 tooperation 672. Operation 672 performs sending all of the validatedclient form data entries to the server computer to create the sentclient form data entry for each form entry with at least one associatedvalidation rule, whenever the client requests form submission andwhenever all client form data entries satisfy all of the associatedlocal client rules. Arrow 674 directs execution from operation 672 tooperation 636. Operation 636 terminates the operations of thisflowchart.

FIG. 14B depicts a detail flowchart of operation 612 of FIG. 13 furtherperforming server computer operations supporting the method using theform and validating the form entries with at least one validation rule.

Arrow 770 directs the flow of execution from starting operation 612 tooperation 772. Operation 772 performs receiving the sent client formdata entry for each form entry with at least one validation rule. Arrow774 directs execution from operation 772 to operation 776. Operation 776terminates the operations of this flowchart.

Arrow 780 directs the flow of execution from starting operation 612 tooperation 782. Operation 782 performs validating the sent client formdata entries based upon all of the associated validation rules, for allform entries with at least one associated validation rule contained inthe form. Arrow 784 directs execution from operation 782 to operation776. Operation 776 terminates the operations of this flowchart.

FIG. 15A depicts a detail flowchart of operation 632 of FIG. 14 furtherperforming the client computer receiving the client form.

Arrow 710 directs the flow of execution from starting operation 632 tooperation 712. Operation 712 performs the client computer operating abrowser downloading a web page based upon the form to create the clientform containing a client form entry with all the associated local clientrules, for each form entry with at least one associated validation rulecontained in the form. Arrow 714 directs execution from operation 712 tooperation 716. Operation 716 terminates the operations of thisflowchart.

FIG. 15B depicts a detail flowchart of operation 632 of FIG. 14 furtherperforming the client computer receiving the client form.

Arrow 730 directs the flow of execution from starting operation 632 tooperation 732. Operation 732 performs the client computer receiving thestep 642 of the client computer processing client data entry based uponthe client form. Arrow 734 directs execution from operation 732 tooperation 736. Operation 736 terminates the operations of thisflowchart.

Arrow 740 directs the flow of execution from starting operation 632 tooperation 742. Operation 742 performs the client computer receiving thestep 652 of the client computer receiving the submission request fromthe client. Arrow 744 directs execution from operation 742 to operation736. Operation 736 terminates the operations of this flowchart.

Arrow 750 directs the flow of execution from starting operation 632 tooperation 752. Operation 752 performs the client computer receiving thestep 662 of the client computer validating the client form entry. Arrow754 directs execution from operation 752 to operation 736. Operation 736terminates the operations of this flowchart.

Arrow 760 directs the flow of execution from starting operation 632 tooperation 762. Operation 762 performs the client computer receiving thestep 672 of the client computer sending all of the validated client formdata entries. Arrow 764 directs execution from operation 762 tooperation 736. Operation 736 terminates the operations of thisflowchart.

The preceding embodiments have been provided by way of example and arenot meant to constrain the scope of the following claims.

1. A method of using a form containing at least one form entry with atleast one associated validation rule performing data validation by botha server computer and a client computer comprising the steps of: theclient computer performing the steps of: receiving a client formcontaining at least one client form entry with all associated localclient rules based upon the form containing the at least one form entrywith the at least one associated validation rule; processing client dataentry based upon the client form to create a client form data entry forthe client form entry; receiving a submission request from the client tocreate a form submission request; validating the client form entry basedupon all the associated local client rules to create a validated clientform data entry whenever the client computer receives the formsubmission request, for each form entry with at least one associatedvalidation rule contained in the form; sending all of the validatedclient form data entries to the server computer to create the sentclient form data entry for each form entry with at least one associatedvalidation rule, whenever the client requests form submission andwhenever all client form data entries satisfy all of the associatedlocal client rules; the server computer performing the steps of:receiving the sent client form data entry for each form entry with atleast one validation rule; validating the sent client form data entriesbased upon all of the associated validation rules, for all form entrieswith at least one associated validation rule contained in the form.2.-45. (canceled)